package com.yfp.group.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 工单表
 * @TableName work_order
 */
@TableName(value ="work_order")
@Data
public class WorkOrder implements Serializable {
    /**
     * 工单号
     */
    private String workOrderSn;

    /**
     * 订单号
     */
    private String orderSn;

    /**
     * 冷餐柜温度
     */
    private String temperature;

    /**
     * 制作时长
     */
    private String processTime;

    /**
     * 微波开始加热时间
     */
    private String heatBeginTime;

    /**
     * 微波结束加热时间
     */
    private String heatEndTime;

    /**
     * 暂存柜存入时间
     */
    private String inLockerTime;

    /**
     * 暂存柜取出时间
     */
    private String outLockerTime;

    /**
     * 工单状态（1：待处理 2：处理中 3：已完成）
     */
    private String workerOrderStatus;

    /**
     * 出餐口关闭时间
     */
    private String exitCloseTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 是否删除
     */
    private Boolean isDelete;

    /**
     * 机器编号
     */
    private String machineId;

    /**
     * 工单序号
     */
    private String workOrderNo;

    /**
     * 套餐编号
     */
    private String comboId;

    /**
     * 套餐名称
     */
    private String comboName;

    /**
     * 出餐口
     */
    private String outMeal;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        WorkOrder other = (WorkOrder) that;
        return (this.getWorkOrderSn() == null ? other.getWorkOrderSn() == null : this.getWorkOrderSn().equals(other.getWorkOrderSn()))
            && (this.getOrderSn() == null ? other.getOrderSn() == null : this.getOrderSn().equals(other.getOrderSn()))
            && (this.getTemperature() == null ? other.getTemperature() == null : this.getTemperature().equals(other.getTemperature()))
            && (this.getProcessTime() == null ? other.getProcessTime() == null : this.getProcessTime().equals(other.getProcessTime()))
            && (this.getHeatBeginTime() == null ? other.getHeatBeginTime() == null : this.getHeatBeginTime().equals(other.getHeatBeginTime()))
            && (this.getHeatEndTime() == null ? other.getHeatEndTime() == null : this.getHeatEndTime().equals(other.getHeatEndTime()))
            && (this.getInLockerTime() == null ? other.getInLockerTime() == null : this.getInLockerTime().equals(other.getInLockerTime()))
            && (this.getOutLockerTime() == null ? other.getOutLockerTime() == null : this.getOutLockerTime().equals(other.getOutLockerTime()))
            && (this.getWorkerOrderStatus() == null ? other.getWorkerOrderStatus() == null : this.getWorkerOrderStatus().equals(other.getWorkerOrderStatus()))
            && (this.getExitCloseTime() == null ? other.getExitCloseTime() == null : this.getExitCloseTime().equals(other.getExitCloseTime()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getIsDelete() == null ? other.getIsDelete() == null : this.getIsDelete().equals(other.getIsDelete()))
            && (this.getMachineId() == null ? other.getMachineId() == null : this.getMachineId().equals(other.getMachineId()))
            && (this.getWorkOrderNo() == null ? other.getWorkOrderNo() == null : this.getWorkOrderNo().equals(other.getWorkOrderNo()))
            && (this.getComboId() == null ? other.getComboId() == null : this.getComboId().equals(other.getComboId()))
            && (this.getComboName() == null ? other.getComboName() == null : this.getComboName().equals(other.getComboName()))
            && (this.getOutMeal() == null ? other.getOutMeal() == null : this.getOutMeal().equals(other.getOutMeal()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getWorkOrderSn() == null) ? 0 : getWorkOrderSn().hashCode());
        result = prime * result + ((getOrderSn() == null) ? 0 : getOrderSn().hashCode());
        result = prime * result + ((getTemperature() == null) ? 0 : getTemperature().hashCode());
        result = prime * result + ((getProcessTime() == null) ? 0 : getProcessTime().hashCode());
        result = prime * result + ((getHeatBeginTime() == null) ? 0 : getHeatBeginTime().hashCode());
        result = prime * result + ((getHeatEndTime() == null) ? 0 : getHeatEndTime().hashCode());
        result = prime * result + ((getInLockerTime() == null) ? 0 : getInLockerTime().hashCode());
        result = prime * result + ((getOutLockerTime() == null) ? 0 : getOutLockerTime().hashCode());
        result = prime * result + ((getWorkerOrderStatus() == null) ? 0 : getWorkerOrderStatus().hashCode());
        result = prime * result + ((getExitCloseTime() == null) ? 0 : getExitCloseTime().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getIsDelete() == null) ? 0 : getIsDelete().hashCode());
        result = prime * result + ((getMachineId() == null) ? 0 : getMachineId().hashCode());
        result = prime * result + ((getWorkOrderNo() == null) ? 0 : getWorkOrderNo().hashCode());
        result = prime * result + ((getComboId() == null) ? 0 : getComboId().hashCode());
        result = prime * result + ((getComboName() == null) ? 0 : getComboName().hashCode());
        result = prime * result + ((getOutMeal() == null) ? 0 : getOutMeal().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", workOrderSn=").append(workOrderSn);
        sb.append(", orderSn=").append(orderSn);
        sb.append(", temperature=").append(temperature);
        sb.append(", processTime=").append(processTime);
        sb.append(", heatBeginTime=").append(heatBeginTime);
        sb.append(", heatEndTime=").append(heatEndTime);
        sb.append(", inLockerTime=").append(inLockerTime);
        sb.append(", outLockerTime=").append(outLockerTime);
        sb.append(", workerOrderStatus=").append(workerOrderStatus);
        sb.append(", exitCloseTime=").append(exitCloseTime);
        sb.append(", createTime=").append(createTime);
        sb.append(", isDelete=").append(isDelete);
        sb.append(", machineId=").append(machineId);
        sb.append(", workOrderNo=").append(workOrderNo);
        sb.append(", comboId=").append(comboId);
        sb.append(", comboName=").append(comboName);
        sb.append(", outMeal=").append(outMeal);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}